home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2008 February / PCWFEB08.iso / Software / Freeware / Miro 1.0 / Miro_Installer.exe / xulrunner / python / test / databasesanitytest.py < prev    next >
Encoding:
Python Source  |  2007-11-12  |  2.0 KB  |  67 lines

  1. """Test database sanity checking.  Right now this is pretty short because we
  2. don't do that much sanity checking.
  3. """
  4.  
  5. import os
  6. import tempfile
  7. import unittest
  8.  
  9. import iconcache
  10. import item
  11. import feed
  12. import databasesanity
  13. import database
  14. import util
  15.  
  16. from test.framework import DemocracyTestCase
  17.  
  18. class SanityCheckingTest(DemocracyTestCase):
  19.     def setUp(self):
  20.         DemocracyTestCase.setUp(self)
  21.         self.savePath = tempfile.mktemp()
  22.         # reroute util.failed
  23.         self.utilDotFailedOkay = True
  24.  
  25.     def tearDown(self):
  26.         try:
  27.             os.unlink(self.savePath)
  28.         except OSError:
  29.             pass
  30.         util.failed = self.oldUtilDotFailed
  31.         DemocracyTestCase.tearDown(self)
  32.  
  33.     def checkObjectListFailsTest(self, objectList):
  34.         self.assertRaises(databasesanity.DatabaseInsaneError,
  35.                 databasesanity.checkSanity, objectList, False)
  36.  
  37.     def checkFixIfPossible(self, startList, fixedList):
  38.         self.failedCalled = False
  39.         rv = databasesanity.checkSanity(startList)
  40.         self.assertEquals(startList, fixedList)
  41.         self.assertEquals(rv, False)
  42.         self.assertEquals(self.failedCalled, True)
  43.  
  44.     def checkObjectListPassesTest(self, objectList):
  45.         databasesanity.checkSanity(objectList)
  46.  
  47.     def testPhantomFeedChecking(self):
  48.         f = feed.Feed(u"http://feed.uk")
  49.         i = item.Item({}, feed_id=f.id)
  50.         i2 = item.FileItem('/foo/bar.txt', feed_id=f.id)
  51.         self.checkObjectListFailsTest([i])
  52.         self.checkFixIfPossible([i, i2], [])
  53.         self.checkObjectListPassesTest([i, f])
  54.         self.checkObjectListPassesTest([])
  55.  
  56.     def testManualFeedChecking(self):
  57.         f = feed.Feed(u"dtv:manualFeed")
  58.         f2 = feed.Feed(u"dtv:manualFeed")
  59.         f3 = feed.Feed(u"dtv:manualFeed")
  60.         self.checkObjectListPassesTest([f])
  61.         self.checkObjectListFailsTest([f, f2])
  62.         self.failedCalled = False
  63.         testList = [f, f2, f3]
  64.         databasesanity.checkSanity(testList)
  65.         self.assertEquals(len(testList), 1)
  66.         self.assertEquals(self.failedCalled, True)
  67.